import java.util.Scanner;
import java.util.SortedMap;
import java.util.TreeMap;

/**
 *
 * 数据表记录包含表索引和数值（int范围的整数），请对表索引相同的记录进行合并，即将相同索引的数值进行求和运算，输出按照key值升序进行输出。
 *
 *
 *
 * @author: YuanChilde
 * @date: 2020-02-17 8:01
 * @version: 1.0
 * Modification History:
 * Date    Author      Version     Description
 * -----------------------------------------------------------------
 * 2020-02-17 8:01    YuanChilde     1.0        新增
 */
public class Demo10 {

    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        // 多行时，使用nextLine()
        int count = Integer.parseInt(sc.nextLine());

        SortedMap<Integer,Integer> sort = new TreeMap();
        for(int i=0;i<count;i++){
            String[] mid = sc.nextLine().split(" ");
            int key = Integer.parseInt(mid[0]);
            int value = Integer.parseInt(mid[1]);
            if(sort.containsKey(key)){
                sort.put(key,sort.get(key)+value);
            }else{
                sort.put(key,value);
            }
        }

        StringBuilder sb = new StringBuilder();
        for(SortedMap.Entry<Integer,Integer> map:sort.entrySet()){
            sb.append(map.getKey()).append(" ").append(map.getValue()).append("\r");
        }
        System.out.println(sb.toString());
    }

}
